package com.xjj.hash;

import java.util.*;

public class M0049GroupAnagrams {

    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<>();
        for (String str : strs) {
            // 按含字符个数分组存放,这里可以直接使用排序
            String sortStr = sortStr(str);
            if (map.containsKey(sortStr)) {
                List<String> list = map.get(sortStr);
                list.add(str);
            } else {
                List<String> list = new ArrayList<>();
                list.add(str);
                map.put(sortStr, list);
            }
        }
        return new ArrayList<>(map.values());
    }

    private String sortStr(String str) {
        char[] chars = str.toCharArray();
        Arrays.sort(chars);
        return new String(chars);
    }

}
